package main

import "fmt"

func main() {
	a, b := 1, 2
	if a > b {
		println("123")
	} else if a == b {
		println("456")
	} else {
		println("678")
	}

	switch a {
	case 1:
		println("1")
	case 2:
		println("2")
	case 4, 5, 6:
		println("3")
	default:
		println("default")
	}

	var x interface{}
	switch i := x.(type) { // 判断是什么类型
	case nil:
		fmt.Printf(" x :%T", i) // i作用域为switch{}内
	case int:
		fmt.Printf("x int ")
	case float64:
		fmt.Printf("x  float64 ")
	case func(int) float64:
		fmt.Printf("x  func(int) ")
	case bool, string:
		fmt.Printf("x  bool  string ")
	default:
		fmt.Printf("unknown")
	}

	println()

	switch {
	case false:
		fmt.Println("1、case false")
		fallthrough // 强制执行下面的case，不管是否满足条件
	case true:
		fmt.Println("2、case true")
		fallthrough
	case false:
		fmt.Println("3、case false")
		fallthrough
	case true:
		fmt.Println("4、case true")
	case false:
		fmt.Println("5、case false")
		fallthrough
	default:
		fmt.Println("6、case")
	}

}
